package com.chen10.cattle.common.utils;

import java.lang.reflect.Field;
import java.lang.reflect.Modifier;

public class ParamCheckUtils {
    public static boolean isParamsNull(Object... params) {
        for (Object param : params) {
            if (param == null) {
                return false;
            }
        }
        return true;
    }

    public static boolean isFieldsNull(Object obj) {
        if (obj == null) {
            return false;
        }

        Class<?> clazz = obj.getClass();
        Field[] fields = clazz.getDeclaredFields();

        for (Field field : fields) {
            // 忽略静态变量
            if (Modifier.isStatic(field.getModifiers())) {
                continue;
            }

            field.setAccessible(true);
            try {
                Object value = field.get(obj);

                // 对于字符串类型，还需检查其是否为空字符串
                if (value == null || (value instanceof String && ((String) value).trim().isEmpty())) {
                    return false;
                }

                // 可以添加更多类型的检查，比如集合是否为空等

            } catch (IllegalAccessException e) {
                e.printStackTrace();
                return false;
            }
        }

        return true;
    }
}
